package dataStructure.tree;

/**
 * @author 浦希成
 * 2019-01-24
 */
public class Util {


    /**
     *          35
     *         /  \
     *       17   39
     *      / \    \
     *     9  28   65
     *             / \
     *            56 87
     *
     */



    public static TreeNode createTree() {
        int[] array = {35, 17, 39, 9, 28, 65, 56, 87};
        //创建二叉树
        TreeNode root = new TreeNode(array[0]);
        for (int i = 1; i < array.length; i++) {
            //向二叉树中插入数据
            insert(root, array[i]);
        }
        return root;
    }

    /**
     * 插入节点
     * @param root
     * @param data
     */
    public static void insert(TreeNode root, int data) {
        //如果插入的节点大于跟节点
        if (data > root.data) {
            //如果右子树为空，就插入
            if (root.right == null) {
                //就把插入的节点放在右边
                root.right = new TreeNode(data);
            } else {
                insert(root.right, data);
            }
        }  //如果插入的节点小于根节点
        else {
            //如果左子树为空，就插入
            if (root.left == null) {
                //就把插入的节点放在左边
                root.left = new TreeNode(data);
            } else {
                insert(root.left, data);
            }
        }
    }
}
